home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / drdobbs / ddjcompr / hstest / src / tomlib.h < prev    next >
C/C++ Source or Header  |  1991-04-29  |  7KB  |  216 lines

  1. # if _MSC_VER < 600
  2.     #define _fastcall
  3. #endif
  4.  
  5. void far * dosalloc(long anzahl_bytes);
  6. int        dosfree(void far * memory_ptr);
  7. int        dosrealloc(void far * memory_ptr,long anzahl_bytes);
  8.  
  9. struct queue
  10.     {
  11.     unsigned short datalen;
  12.     unsigned short wrp;         /* write pointer    */
  13.     unsigned short rdp;         /* read pointer     */
  14.     unsigned short count;       /* number of free chars */
  15.     unsigned short stop:1;        /* nicht verwendet  */
  16.     unsigned short xoffsend:1;    /* XON / XOFF gesendet */
  17.     unsigned short reserved:14;
  18.     unsigned char data[1];      /* raw data         */
  19.     } ;
  20.  
  21. typedef struct queue far * QUEUE;
  22.  
  23.  
  24. QUEUE qopen  (int queue_length_in_bytes);
  25. int   qwrite (QUEUE qptr,void* buffer,int anzbytes);
  26. int   qwritec(QUEUE qptr,char writeval);
  27. int   qwritei(QUEUE qptr,int  writeval);
  28. int   qread  (QUEUE qptr,void* buffer,int anzbytes);
  29. int   qreadc (QUEUE qptr);
  30. int   qreadi (QUEUE qptr);
  31. # define qempty(QUEUE) (QUEUE->wrp == QUEUE->rdp)
  32. # define qfree(QUEUE) (QUEUE->count)
  33. int   qclose (QUEUE qptr);
  34. void  qflush (QUEUE qptr);
  35.  
  36.  
  37. #define T_PRALPHA  0
  38. #define T_PRGRAFIK 1
  39. #define T_PRCOPYSTART 2
  40. #define T_PRCOPYEND   3
  41. #define T_PRALPHASTART 4
  42. #define T_PRALPHAEND   5
  43. #define T_PRGELB       6
  44. #define T_PRROT           7
  45. #define T_PRBLAU          8
  46. #define T_PRSCHW          9
  47. #define T_PRGRLF   10
  48. #define T_PRDISITALPHA  11
  49.  
  50. int t_print(char* buffer,int anzbytes,int printmode);
  51. int t_print_clear();                    /* clear output buffer        */
  52.  
  53. int  t_create(int (*) (void),int,... );    /* returns TASK ID            */
  54. void t_next(void);                        /* goto next task            */
  55. void t_nextn(int t_nextcount);            /* goto next task, n times     */
  56. void t_sleep(int anz_milliseconds);        /* sleep (milliseconds), res. TICKTIME */
  57. int  t_ownid(void);                        /* return your own ID number */
  58. void t_delete(int taskid);                /* delete TASK ID            */
  59.  
  60. void ontimer     (int,void (*) (void));    /* every tick call function */
  61. void ontimer_inc (int* memptr);            /* every tick increment var */
  62.  
  63. #define TICKTIME 55                        /* 1 system interrupt = 55 millisec */
  64.  
  65. #define NORMAL         0x0a                /* videoattribute */
  66. #define INVERS         0x70
  67. #define DUNKEL         0x02
  68. #define BLINKEN      0x80
  69. #define HINTERLEGT     0x2a
  70. #define GRAU         0x07
  71. #define SCHWARZ_CYAN 0x30
  72.  
  73. #define MAX_LINES    50
  74. #define MAX_COLUMNS  132
  75. #define V_MAXCOL     132
  76.  
  77. int  v_dispats    (int zeile,int spalte,char* buffer,int attribute);
  78. int  v_dispats_blank(int zeile,int spalte,char* buffer,int attribute,int length);
  79. void v_dispat    (int zeile,int spalte,char* buffer,int attribute,int length);
  80. void v_dispatc    (int zeile,int spalte,int c,int attribute);
  81. void v_disset    (int zeile,int spalte,char  setval,int attribute,int length);
  82. void vo_disset    (int offset,          char  setval,int attribute,int length);
  83. void v_disget    (int zeile,int spalte,char* buffer,int length);
  84. void vo_disget    (int offset,          char* buffer,int length);
  85. void v_disgetw    (int zeile,int spalte,int * buffer,int length);
  86. void vo_disgetw (int offset,          int * buffer,int length);
  87. void v_dispatw    (int zeile,int spalte,int * buffer,int length);    
  88. void vo_dispatw    (int offset          ,int * buffer,int length);    
  89.  
  90. void v_cls        (int attribute);
  91. void v_cursto    (int zeile,int spalte);
  92. int  v_printf   (int zeile,int spalte,int attribute,char* formatstring,...);
  93. void v_selpage    (int pageno, int zeilen, int spalten);
  94. void v_restorevideo(void);
  95. void v_charset  (int block,int zeichenhoehe,char far *zeichensatz_ptr);
  96. void v_charload (int block,int first,int anzchars,int zeichenhoehe
  97.                                             ,char far *zeichensatz_ptr);
  98. void v_charread (int block,int first,char far * bufferptr);
  99.  
  100. void v_hexw        (int zeile,int spalte,int* buffer,int attribute,int length);
  101.  
  102. int hexd(void *array);
  103. int hexdn(register void *array,register int anz);
  104. int hexsd(register void *dest,void *src,int anz);
  105.  
  106.  
  107.  
  108.  
  109.  
  110. #define V_USE_NORMCURS  0                    /* v_param() */
  111. #define V_USE_BLOCKCURS 1
  112. #define V_USE_SHOWCURS  2
  113.  
  114. void v_param(int);            
  115.  
  116. #define V_OUT(base,select,data) outpw(base,(select) | ((data) <<8))
  117.  
  118.  
  119.  
  120. long mikro_diff(void);        /* return mikroseconds since last call    */
  121. long mikro_abs(void);        /* return mikroseconds absolut since ?? */
  122. long ticks_abs(void);        /* same for system ticks = 865 nanoseconds */
  123.  
  124. void push (void*,int);
  125. int  pop  (void*);
  126.  
  127. int readstr (int,int,int,char*,char*,int,int,int (*) (void) );
  128.  
  129. void checkchg(long *);
  130. void nullchk (long *,long,int,void (*) (int,...));
  131.  
  132. void meicpyf (void far *destptr,void far *srcptr,int length);
  133. void meisetf (void far *destptr,int value       ,int length);
  134. void meicpyfb(void far *destptr,void far *srcptr,int length);
  135. int  meicmpf (void far *destptr,void far *srcptr,int length); /* -1 or index */
  136. int  meixchg (void far *destptr,void far *srcptr,int length); /* -1 or index */
  137.  
  138. char *ignspace(char*);
  139.  
  140. int BIOS(int biosinterrupt,int functioncode,...);
  141. extern char BIOS_FLAGS;
  142. #define CARRY_FLAG 0x01
  143. #define ZERO_FLAG  0x40
  144.  
  145.  
  146.                             /* low memory defines */
  147. #define __ACT_VIDEOMODE    (*(unsigned char far *)0x00000449l)
  148. #define __SHIFT_STATUS     (*(unsigned char far *)0x00000417l)
  149. #define __EXTSHIFT_STATUS  (*(unsigned char far *)0x00000418l)
  150.  
  151.  
  152. int far farcall(),far lfarcall();
  153. void far *far pfarcall();
  154. char *getargs(int*,char **,char*);
  155.  
  156. extern  int  far strm_init(unsigned int size);
  157. extern  void far strm_close(void );
  158. extern  void far strm_save  (int handle);
  159. extern  int  far strm_resume(int handle);
  160.  
  161. extern  char far *far strm_search(int num);
  162. extern  int far strm_get(int num,char *buffer);
  163. extern  int far strm_append(char *buffer);
  164. extern  int far strm_delete(int num);
  165. extern  int far strm_deleten(int num,int anzlines);
  166. #define DB(c) (*(char far *)0xb0000000l  = c)
  167. int is_prim(long);
  168.  
  169. int far_read  (int handle,void far *buffer,int count);
  170. int far_write (int handle,void far *buffer,int count);
  171.  
  172. #define MAXPATHLENGTH (64+1)    // maximale laenge eines DOS - Filenamens
  173. #define MAXNAMELENGTH (8+1)        // laenge vor  '.'
  174. #define MAXEXTLENGTH  (3+1)        // laenge nach '.'
  175.  
  176.  
  177. struct dl_list{
  178.     void *next,*prev;
  179.     };
  180.  
  181. dl_link(void *header,void *next);
  182. dl_unlink(void *Z);
  183.  
  184. int far detab(register char *dest, register char *src, int tablen,int maxlinlen);
  185. int far nonewline(register char *d);
  186.  
  187.     
  188. extern unsigned int 
  189.     v_attr_normal ,
  190.     v_attr_dunkel ,
  191.     v_attr_invers ,
  192.     v_attr_uline  ;
  193.  
  194. #ifdef FILE
  195. FILE *weopen(char *name,char *extension,int mode1,char *m1,...);
  196. FILE *wedefopen(char *extension,char *open_mode);
  197. #endif
  198.  
  199. #define OPEN_CURRENT 1
  200. #define OPEN_WE75    2
  201. #define OPEN_EXE     3
  202.  
  203. char *exename(void);
  204.  
  205. int get_volatile(void far *value);
  206. void far *dv_get_segment(void far *ptr);
  207.  
  208.  
  209. # define TRUE     1
  210. # define FALSE     0
  211.  
  212. #define max(a,b)    (((a) > (b)) ? (a) : (b))
  213. #define min(a,b)    (((a) < (b)) ? (a) : (b))
  214.  
  215. #define LENGTH(x) (sizeof(x)/sizeof(x[0]))
  216.